package com.gmadmin.service;

import com.gmadmin.entity.SysRole;
import com.gmadmin.payload.RoleQueryCriteria;
import com.gmadmin.entity.vo.role.SysRoleVo;

import java.util.List;

/**
 * @author zhangliang
 * @version 1.0
 * @date 2021/2/2 14:59
 */
public interface SysRoleService extends BaseService<SysRole,RoleQueryCriteria> {
    /**
     * 根据用户id查询相应角色
     * @param id
     * @return
     */
    List<SysRoleVo> selectByUserId(Long id);

    /**
     * 查询所有的角色名称
     *
     * @return
     */
    List<SysRoleVo> getRoles();


    /**
     * 根据用户id获取角色
     * @param userId
     * @return
     */
    List<SysRoleVo> getByUserId(Long userId);


    /**
     * 更新角色关联菜单
     * @param roleId 角色id
     * @param menuIds 菜单ids
     */
    void updateRoleAndMenus(Long roleId,List<Long> menuIds);

    /**
     * 更新角色关联菜单
     * @param roleId 角色id
     * @param apiIds api的ids
     */
    void updateRoleAndApis(Long roleId, List<Long> apiIds);

//    /**
//     * 添加角色信息
//     * @param sysRole
//     * @param menus
//     * @return
//     */
//    Boolean addRole(SysRole sysRole, List<SysMenu> menus);
//
//    /**
//     * 删除角色信息
//     * @param ids
//     * @return
//     */
//    Boolean delRole(Set<Long> ids);
//
//    /**
//     * 更新角色信息
//     * @return
//     * @param sysRole
//     */
//    Boolean updateRole(SysRole sysRole);
//
//
//    /**
//     * 根据roleId返回信息
//     * @param id
//     * @return
//     */
////     SysRoleVo getByRoleId(Serializable id) ;
//
//    /**
//     * 导出
//     * @param response
//     * @param ids
//     */
//    void download(HttpServletResponse response, List<Long> ids) throws IOException;
}
